package com.asuka.eva.comm;

import cn.hutool.core.util.IdcardUtil;
import com.alibaba.fastjson.JSONObject;
import com.asuka.eva.BusinessConst;
import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

public class TestA {

    public static final Map<String, String> PSN_TYPE_CONVERT_TO_INSU_IDET_MAP = new HashMap<>(2);

    static {
        PSN_TYPE_CONVERT_TO_INSU_IDET_MAP.put(BusinessConst.PSN_TYPE_JM_WCN, BusinessConst.INSU_IDET_JM_WCN);
        PSN_TYPE_CONVERT_TO_INSU_IDET_MAP.put(BusinessConst.PSN_TYPE_JM_CN, BusinessConst.INSU_IDET_JM_CN);
        PSN_TYPE_CONVERT_TO_INSU_IDET_MAP.put(BusinessConst.PSN_TYPE_DXS, BusinessConst.INSU_IDET_DXS);
        PSN_TYPE_CONVERT_TO_INSU_IDET_MAP.put(BusinessConst.PSN_TYPE_ZZ, BusinessConst.INSU_IDET_ZG_ZZ);
        PSN_TYPE_CONVERT_TO_INSU_IDET_MAP.put(BusinessConst.PSN_TYPE_TX, BusinessConst.INSU_IDET_ZG_TX);
    }

    @Test
    public void test1() {
        // 创建一个目标对象，初始化数据。
        JSONObject targetObject = new JSONObject();
        targetObject.put("status", "default");
        // 创建一个用于发送数据的对象 将目标对象放入其中。
        JSONObject sendObject = new JSONObject();
        sendObject.put("target", targetObject);
        // do something
        // 经过上边业务处理 这时我需要修改targetObject中初始化的数据
        JSONObject target = sendObject.getJSONObject("target");
        // 修改数据
        // 注意此时你总共就创建了两个对象，存在堆内。
        // sendObject对象中存储的是targetObject的引用。也可以理解是指针，他指向对内你最早创建的targetObject
        // 所以此处修改数据是修改了原始创建的targetObject，在整个过程中没有创建额外的对象。
        target.put("status", "finished");
        // 发送数据
    }

    public static void main(String[] args) {
        String s = IdcardUtil.convert15To18("232601750512001");
        System.out.println(s);
    }
    public static String getInsuranceIdentityCode(String psnType, String empMgtType) {
        boolean isBlankPsnType = psnType == null || psnType.isEmpty();
        if (isBlankPsnType) {
            return null;
        }
        String insuIdet = PSN_TYPE_CONVERT_TO_INSU_IDET_MAP.get(psnType);
        if (BusinessConst.PSN_TYPE_ZZ.equals(insuIdet)
                && (Boolean.FALSE.equals(empMgtType == null || empMgtType.isEmpty()))) {
            switch (empMgtType) {
                case BusinessConst.EMP_MGT_TYPE_02_LHJYXNDW:
                case BusinessConst.EMP_MGT_TYPE_03_LHJYXNDW:
                    return BusinessConst.INSU_IDET_ZG_LHJY;
                case BusinessConst.EMP_MGT_TYPE_05_LHJYXNDW:
                    return BusinessConst.INSU_IDET_ZG_SYRY;
                default:
                    break;
            }

        }
        return insuIdet;
    }




}